package com.hzh.cusviewdemo.Base;

import android.app.Application;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Build;
import android.os.IBinder;
import android.util.Log;

import androidx.multidex.MultiDex;

import com.hzh.cusviewdemo.Music.Constant;
import com.hzh.cusviewdemo.Music.MusicPlayService;
import com.hzh.cusviewdemo.Music.MyMusicUtil;
import com.hzh.cusviewdemo.Util.Config;
import com.kongzue.dialogx.DialogX;
import com.orm.SugarContext;
import com.taobao.sophix.SophixManager;
import com.tencent.bugly.Bugly;
import com.tencent.mmkv.MMKV;

/**
 * Application初始化
 */
public class MyApplication extends Application {

    private static Context context;//全局上下文

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();
        // 初始化腾讯MMKV键值对存储
        MMKV.initialize(this);
        // 初始化数据库
        SugarContext.init(this);
        // 初始化Bugly
        Bugly.init(this, "8a3548353e", true);
        DialogX.init(this);

        // 如果没有播放模式，设置
        if (MyMusicUtil.getIntShared(Constant.KEY_MODE) == -1) {
            MyMusicUtil.setShared(Constant.KEY_MODE, 0); // 初始模式，顺序
        }
        if (MyMusicUtil.getIntShared(Constant.IS_LOOK_LRC) == -1) {
            MyMusicUtil.setShared(Constant.IS_LOOK_LRC, 1); // 初始模式，歌词和转圈都看
        }
        if (MyMusicUtil.getStringShared(Constant.IS_AGREE_WARMING).equals("")) {
            MyMusicUtil.setShared(Constant.IS_AGREE_WARMING, "1"); // 初始不同意免责声明
        }
        if (MyMusicUtil.getStringShared(Constant.IS_FIRST_USE_APP).equals("")) {
            MyMusicUtil.setShared(Constant.IS_FIRST_USE_APP, "0"); // 初始不同意免责声明
        }
        if (MyMusicUtil.getStringShared(Constant.KEY_NOW_PLAY_MENU).isEmpty()) {
            MyMusicUtil.setShared(Constant.KEY_NOW_PLAY_MENU, "全部歌曲"); // 当前播放歌单默认进入全部歌曲
        }
        // 每次打开APP初始都设置为没有播放音乐
        MyMusicUtil.setShared(Constant.IS_PLAYING_MUSIC, "0");
        // 开启音乐服务
        Intent startIntent = new Intent(MyApplication.this, MusicPlayService.class);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            startForegroundService(startIntent);
        } else {
            startService(startIntent);
        }
        bindService(startIntent, new ServiceConnection() {
            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                Log.e(Config.TAG, "MyApplication:onCreate:onServiceConnected");
            }

            @Override
            public void onServiceDisconnected(ComponentName name) {
                Log.e(Config.TAG, "MyApplication:onCreate:onServiceDisconnected");
            }
        }, BIND_AUTO_CREATE);
    }

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        // 支持开启多dex配置
//        MultiDex.install(base);
    }

    //获取全局的上下文
    public static Context getContext() {
        return context;
    }

}
